namespace SimpleServiceBus.EndpointMonitor.Web.Helpers.Flot.FlotOptions
{
    public class FlotLegendOptions
    {
        public bool? Show { get; set; }

        /// <summary>
        ///The legend is generated as a table with the data series labels and
        ///small label boxes with the color of the series. If you want to format
        ///the labels in some way, e.g. make them to links, you can pass in a
        ///function for "labelFormatter". Here's an example that makes them
        ///clickable:
        ///
        ///  labelFormatter: function(label, series) {
        ///    // series is the series object for the label
        ///    return '<a href="#' + label + '">' + label + '</a>';
        ///  }
        /// </summary>
        public string LabelFormatter { get; set; }

        public string LabelBoxBorderColor { get; set; }
        
        /// <summary>
        /// This is an unfortunate abbreviation for "Number of Columns"
        /// From the API: "noColumns" is the number of columns to divide the legend table into.
        /// </summary>
        public int? NoColumns { get; set; }

        /// <summary>
        /// "Position" specifies the overall placement of the legend within the
        ///  plot (top-right, top-left, etc.)
        /// </summary>
        public FlotLegendPosition? Position { get; set; }

        /// <summary>
        /// Number of pixels
        /// </summary>
        public int? Margin { get; set; }

        public string BackgroundColor { get; set; }

        /// <summary>
        /// Number between 0 and 1
        /// </summary>
        public double? BackgroundOpacity { get; set; }

        /// <summary>
        /// jQuery object/DOM element/jQuery expression
        /// </summary>
        public string Container { get; set; }
    }
}